// FFileSystem.h (c) 2011 JV Software
//

//
// FSeekState_t
//
enum FSeekState_t {
	FSEEK_SET = 0,
	FSEEK_CUR,
	FSEEK_END
};

//
// FFile
//
class ENGINE_API FFile : public FObject {
public:
	virtual void			*Read( int len ) = 0;
	virtual void			Read( void *buffer, int len ) = 0;
	virtual int				Len( void ) = 0;
	virtual int				Tell( void ) = 0;
	virtual void			Seek( FSeekState_t state, int pos ) = 0;
};

//
// FFileSystem
//
class ENGINE_API FFileSystem {
public:
	virtual void			Init( void ) = 0;
	virtual FFile			*OpenFile( FString path ) = 0;
};

extern ENGINE_API FFileSystem			*fileSystem;